home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Sample Code / AOCE Sample Code / PowerTalk Access Modules / Sample SMSAM / SampleSMSAM Source / 2020HalfGateway / BLJOCEUtilities.cp < prev    next >
Encoding:
Text File  |  1995-07-28  |  4.6 KB  |  173 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        BLJOCEUTilities.cp
  3.  
  4.     Copyright:    © 1991-1994 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Part of the AOCE Sample SMSAM Package.  Consult the license
  8.     which came with this software for your specific legal rights.
  9.  
  10. */
  11.  
  12.  
  13.  
  14. #ifndef __BLJOCEUTILITIES__
  15. #include "BLJOCEUtilities.h"
  16. #endif
  17.  
  18. #ifndef    __UTILITIES__
  19. #include "Utilities.h"
  20. #endif
  21.  
  22. #ifndef __GESTALTEQU__
  23. #include <GestaltEqu.h>
  24. #endif
  25.  
  26. /***********************************|****************************************/
  27.  
  28. #pragma segment BLJOCEUtilities
  29.  
  30. /***********************************|****************************************/
  31.  
  32. inline min(int a, int b) { return a < b ? a : b; }
  33.  
  34. /***********************************|****************************************/
  35.  
  36. Boolean CreateRString (RString& r, char *data, short length, short maxSize, short charSet) 
  37. {
  38.     r.charSet = charSet;
  39.     r.dataLength = min ( (int) length, (int) maxSize);
  40.     
  41.     if (r.dataLength > 0) 
  42.     {
  43.         BlockMove ((Ptr) data, (Ptr) &r.body, r.dataLength);
  44.         return true;
  45.     }
  46.     
  47.     return false;
  48. }
  49.  
  50. /***********************************|****************************************/
  51.  
  52. RStringPtr NewRStringPtr(const char* data, short length, short maxSize, short charSet)
  53. {
  54.     RStringPtr    r = (RStringPtr) FAILNewPtr(sizeof(ProtoRString) + length);
  55.     r->charSet = charSet;
  56.     r->dataLength = min( (int) length, (int) maxSize);
  57.     BlockMove( data, &r->body, r->dataLength);
  58.     return r;
  59. }
  60.  
  61. /***********************************|****************************************/
  62.  
  63. RStringPtr NewRStringPtrCopy(const RStringPtr r) 
  64. {
  65.     Size ptrSize = r->dataLength + sizeof(ProtoRString);
  66.     RStringPtr result = (RStringPtr) FAILNewPtr(ptrSize);
  67.     BlockMove( r,  result, ptrSize);
  68.     return result;
  69. }
  70.  
  71. /***********************************|****************************************/
  72.  
  73. ostream& operator << (ostream& s, const LocalRecordID& l) 
  74. {
  75.     return s << "LocalRecordID: '" << l.recordName << "', '" << l.recordType << "' " << l.cid << flush;
  76. }
  77.  
  78. /***********************************|****************************************/
  79.  
  80. #if THINK_CPLUS
  81. ostream& operator << (ostream& s, const LocalRecordID* l)
  82. {
  83.     if (l)
  84.         return s << (LocalRecordID*) l;
  85.     else
  86.         return s << "localRID==nil ";
  87. }
  88. #endif
  89.  
  90. /***********************************|****************************************/
  91.  
  92. ostream& operator << (ostream& s, const ShortRecordID& l) 
  93. {
  94.     return s << "ShortRecordID: " << l.rli << " " << l.cid << flush;
  95. }
  96.  
  97. /***********************************|****************************************/
  98.  
  99. ostream& operator << (ostream& s, const ShortRecordID* l) 
  100. {
  101.     #ifndef THINK_CPLUS
  102.     return s << *l;
  103.     #else
  104.     return s << "(ShortRecordID* unsupported) ";
  105.     #endif
  106. }
  107.  
  108. /***********************************|****************************************/
  109.  
  110. ostream& operator << (ostream& s, const DSSpec& dsSpec) 
  111. {
  112.     s << *dsSpec.entitySpecifier << endl << flush;
  113.     s << "xtnType="; s.write((char*) &dsSpec.extensionType, (int) sizeof(dsSpec.extensionType)); s << " len=" << dsSpec.extensionSize << flush;
  114.     return s << " data='"; s.write((char*) dsSpec.extensionValue, (int) dsSpec.extensionSize); s << "'" << endl << flush;
  115. }
  116.  
  117. /***********************************|****************************************/
  118.  
  119. ostream& operator << (ostream& s, DSSpec* dsSpecPtr) 
  120. {
  121.     #ifndef THINK_CPLUS
  122.     return s << *dsSpecPtr;
  123.     #else
  124.     return s << "(DSSpec* unsupported) ";
  125.     #endif
  126. }
  127.  
  128. /***********************************|****************************************/
  129.  
  130. ostream& operator<< (ostream& s, const MailTime& time)
  131. {
  132.     Str255     dateStr255, timeStr255;
  133.     IUDateString (time.time + time.offset, shortDate, dateStr255);
  134.     IUTimeString (time.time + time.offset, false, timeStr255);
  135.     return s << dateStr255 << " " << timeStr255;
  136. }
  137.  
  138. /***********************************|****************************************/
  139.  
  140. ostream& operator << (ostream& s, const MailLetterID& id) 
  141. {
  142.     for (short i = 0; i < 8; ++i)
  143.         s << id.id[i] << " ";
  144.     return s << flush;
  145. }
  146.  
  147. /***********************************|****************************************/
  148.  
  149. Boolean IsAOCEInstalled ()
  150. {
  151.     long value;
  152.     
  153.     return ( ( Gestalt ( gestaltOCEToolboxAttr, &value ) == noErr ) && ( value & gestaltOCETBPresent ) );
  154. }
  155.  
  156. /***********************************|****************************************/
  157.  
  158. Boolean IsAOCEAvailable ()
  159. {
  160.     long value;
  161.     return ( ( Gestalt ( gestaltOCEToolboxAttr, &value ) == noErr ) && ( value & gestaltOCETBAvailable ) );
  162. }
  163.  
  164. /***********************************|****************************************/
  165.  
  166. Boolean IsAOCEMailServerAvailable ()
  167. {
  168.     long value;
  169.     return ( ( Gestalt ( gestaltOCEToolboxAttr, &value ) == noErr ) && ( value & gestaltOCESFServerAvailable ) );
  170. }
  171.  
  172. /***********************************|****************************************/
  173.